Инвесторы из фонда «Shut Up and Take My Money» решили попробовать себя в новой области и открыть заведение общественного питания в Москве. Заказчики ещё не знают, что это будет за место: кафе, ресторан, пиццерия, паб или бар, — и какими будут расположение, меню и цены.

Для начала была поставлена задача подготовить исследование рынка Москвы, найти интересные особенности и презентовать полученные результаты, которые в будущем помогут в выборе подходящего инвесторам места.

Нам доступен датасет с заведениями общественного питания Москвы, составленный на основе данных сервисов Яндекс Карты и Яндекс Бизнес на лето 2022 года. Информация, размещённая в сервисе Яндекс Бизнес, могла быть добавлена пользователями или найдена в общедоступных источниках. Она носит исключительно справочный характер.

Мы проведем пошаговое исследование данных и предоставим заключительные выводы.

ШАГ 1 Изучение общей информации

Загрузим данные о заведениях общественного питания Москвы.

Изучите общую информацию о датасете. Проведем предварительный анализ полученных данных.

Комментарий ревьюера: ✅ Здорово, когда есть вступление в сам проект, каждый сможет быстрее разобраться в концепции / деталях работы.

Описание данных.

Файл moscow_places.csv представлен в 14 столбцах и 8406 строках. Наименование столбцов соответсвуют стандарному написанию, изменения вносить нет необходимости.

Значения представлены типами float64, int64, object. На данном этапе логичным кажется изменить тип данных у столбца chain на bool, но пока не очевидно, что это нам пригодится. Поэтому оставим без изменений.

Значения столбцов:

name — название заведения;

address — адрес заведения;

category — категория заведения, например «кафе», «пиццерия» или «кофейня»;

hours — информация о днях и часах работы;

lat — широта географической точки, в которой находится заведение;

lng — долгота географической точки, в которой находится заведение;

rating — рейтинг заведения по оценкам пользователей в Яндекс Картах (высшая оценка — 5.0);

price — категория цен в заведении, например «средние», «ниже среднего», «выше среднего» и так далее;

avg_bill — строка, которая хранит среднюю стоимость заказа в виде диапазона, например: «Средний счёт: 1000–1500 ₽»; «Цена чашки капучино: 130–220 ₽»; «Цена бокала пива: 400–600 ₽». и так далее;

middle_avg_bill — число с оценкой среднего чека, которое указано только для значений из столбца avg_bill, начинающихся с подстроки «Средний счёт»: Если в строке указан ценовой диапазон из двух значений, в столбец войдёт медиана этих двух значений. Если в строке указано одно число — цена без диапазона, то в столбец войдёт это число. Если значения нет или оно не начинается с подстроки «Средний счёт», то в столбец ничего не войдёт.

middle_coffee_cup — число с оценкой одной чашки капучино, которое указано только для значений из столбца avg_bill, начинающихся с подстроки «Цена одной чашки капучино»: Если в строке указан ценовой диапазон из двух значений, в столбец войдёт медиана этих двух значений. Если в строке указано одно число — цена без диапазона, то в столбец войдёт это число. Если значения нет или оно не начинается с подстроки «Цена одной чашки капучино», то в столбец ничего не войдёт.

chain — число, выраженное 0 или 1, которое показывает, является ли заведение сетевым (для маленьких сетей могут встречаться ошибки): 0 — заведение не является сетевым 1 — заведение является сетевым

district — административный район, в котором находится заведение, например Центральный административный округ;

seats — количество посадочных мест.

ШАГ 2 Предобработка данных

Изучим, есть ли дубликаты в данных.

Изучим пропуски.

Выполним предобработку данных:

Создадим столбец street с названиями улиц из столбца с адресом.

Создадим столбец is_24/7 с обозначением, что заведение работает ежедневно и круглосуточно (24/7): логическое значение True — если заведение работает ежедневно и круглосуточно; логическое значение False — в противоположном случае.

Комментарий ревьюера: ❗️ Рекомендую также оценивать доли пропусков по столбцам, таким образом мы сразу сможем понять где больше всего пропусков в нашем датафрейме.
Комментарий студента: Спасибо. Для этого достаточно прописать доли в кратком выводе или необходимо подтвердить расчет кодом?
Комментарий ревьюера (2): ✅ Лучше всего конечно расчетом 😊

Имеем пропуски в столбцах:

Приведем наши данные к нижнему регистру, возможно, это поможет при выявлении дубликатов.

Комментарий ревьюера: ❗️ Однотипные расчеты мы также можем выполнять с помощью цикла `for` и тем самым оптимизировать код внутри проекта.
Комментарий студента: Приведение к нижнему регистру прописано через цикл for:.
Комментарий ревьюера (2): ✅ 👍

Получили 4 совпадения. Удалим эти дубликаты.

Из этих данных мы видим, что существуют заведения с 0 посадочных мест и с 1288. Изучим этот вопрос, реально ли подобное.

Наименовани и типы ресторанов с 0 значением посадочных мест различны.Всего у нас таких 136 заведений. Однозначного типа нет. Могу предположить, что это не только "уличная" еда, где изначально и не предполагается наличие столов/стульев, но и варианты заведений со спецификой работы только через доставку. У нас в данных нет такого отдельного столбца с пометкой "только на доставку", поэтому допускаем, что значение 0 в столбце seats это именно такой вариант.

Видим, что из всего количество ресторанов, 11 заведений заявляют максимальное число посадочных мест на 1288 клиентов. Это порядка 322 стола на 4-х гостей. Огромные заведения. Допускаем наличие таких маштабов в г.Москве и, как видим, ошибочно заявленных заведений быстрого питания, в них нет.

Из всего общего количества пердставленных нам заведений, большая часть (5199 заведений) принадлежит к несетевым, а 3203 заведения сетевые.

Категории заведений представлены в 8 видах. Наименования не дублируют друг друга.

Комментарий ревьюера: ✅ Хорошие способы разметить и извлечь данные внутри датасета.

Как видим, представлены 9 округов. Опечаток, порождающих неявные дубликатов, нет.

С преимущественным отрывом, 2242 заведения находятся в Центральном Административном округе. Далее следуют Северный и Южный административыне округи, 898 и 892 заведений соответственно. И почти без отрыва от них, Северо-Восточный административный округ (890 заведений).

Преимущество Центрального Административного округа очевидно в силу туристического интереса и потока людей, насыщенности офисных бизнес-центров.В округе расположено много театров, 6 московских вокзалов — Белорусский, Ленинградский, Ярославский, Казанский, Курский, Павелецкий, большинство министерств Российской Федерации, а также Кремль, Правительство РФ, Государственная дума, Совет Федерации. Значительную часть территории округа занимают различные офисные здания, на западной окраине округа в том числе расположен ММДЦ «Москва-Сити».

Северный административный округ представляет собой 17 районов: Аэропорт, Беговой, Бескудниково, Бусиново, Войковский, Восточное Дегунино, Головинский, Дмитровский, Западное Дегунино, Коптево, Левобережный, Савеловский, Сокол, Тимирязевский, Ховрино, Хорошевский и Молжаниновский (расположен за пределами МКАД). В округ входят исторические местности: Всехсвятское, Михалково, Петровско-Разумовское, Коровино и др. Половина раайонов представляют собой элитные жилые кварталы. При этом в округе находятся железнодорожные пути Белорусского вокзала и Савеловского. Так же проходит линия большой обустроенной парковой зоны Северного речного порта.

В СВАО много благоустроенных парков, прудов, небольших рек. Округ делится на 17 районов:Алексеевский, Алтуфьевский,Бабушкинский, Бибирево, Бутырский, Лианозово, Лосиноостровский, Марфино, Марьина Роща, Останкинский, Отрадное, Ростокино, Свиблово, Северное Медведково, Северный, Южное Медведково, Ярославский. Помимо плотной жилой застройки, в округе обустроеная парковая линия Москвы-реки и ее канала.

Южный административный округ включает в себя 16 районов и является крупнейшим по населению округом города. Помимо большой застройки "спальных" районов, в округе находится большое количество достопримечательностей города: Царицинский парк, ансамбль историко-архитектурных памятников XVI—XIX веков "Донской монастырь", одно из древнейших мест Москвы — музей-заповедник «Коломенское»; историко-архитектурный ансамбль XVI—XVIII веков «Симонов монастырь».

В отличие от СВАО с его "роскошными" жилыми комплексами и бизнес-центрами, ЮАО сочетал в себе исторические обьекты и "спальные" районы.

Как видим, ЦАО главный претендент на успешное функционирование любого типа заведения. Но не станем оставлять без внимания и остальные округа из "тройки лидеров".

ИТАК

на втором шаге нашего исследования мы установили, что:

На этапе предобработки данных мы получили первые наблюдения:

ШАГ 3 АНАЛИЗ ДАННЫХ

На третьем шаге нашего исследования нам предстоит ответить на следующие пункты:

  1. Какие категории заведений представлены в данных? Исследуйте количество объектов общественного питания по категориям: рестораны, кофейни, пиццерии, бары и так далее. Постройте визуализации. Ответьте на вопрос о распределении заведений по категориям.

  2. Исследуйте количество посадочных мест в местах по категориям: рестораны, кофейни, пиццерии, бары и так далее. Постройте визуализации. Проанализируйте результаты и сделайте выводы.

  3. Рассмотрите и изобразите соотношение сетевых и несетевых заведений в датасете. Каких заведений больше?

  4. Какие категории заведений чаще являются сетевыми? Исследуйте данные и ответьте на вопрос графиком.

  5. Сгруппируйте данные по названиям заведений и найдите топ-15 популярных сетей в Москве. Под популярностью понимается количество заведений этой сети в регионе. Постройте подходящую для такой информации визуализацию. Знакомы ли вам эти сети? Есть ли какой-то признак, который их объединяет? К какой категории заведений они относятся?

  6. Какие административные районы Москвы присутствуют в датасете? Отобразите общее количество заведений и количество заведений каждой категории по районам. Попробуйте проиллюстрировать эту информацию одним графиком.

  7. Визуализируйте распределение средних рейтингов по категориям заведений. Сильно ли различаются усреднённые рейтинги в разных типах общепита?

  8. Постройте фоновую картограмму (хороплет) со средним рейтингом заведений каждого района. Границы районов Москвы, которые встречаются в датасете, хранятся в файле admin_level_geomap.geojson (скачать файл для локальной работы).

  9. Отобразите все заведения датасета на карте с помощью кластеров средствами библиотеки folium.

  10. Найдите топ-15 улиц по количеству заведений. Постройте график распределения количества заведений и их категорий по этим улицам. Попробуйте проиллюстрировать эту информацию одним графиком.

  11. Найдите улицы, на которых находится только один объект общепита. Что можно сказать об этих заведениях?

  12. Значения средних чеков заведений хранятся в столбце middle_avg_bill. Эти числа показывают примерную стоимость заказа в рублях, которая чаще всего выражена диапазоном. Посчитайте медиану этого столбца для каждого района. Используйте это значение в качестве ценового индикатора района. Постройте фоновую картограмму (хороплет) с полученными значениями для каждого района. Проанализируйте цены в центральном административном округе и других. Как удалённость от центра влияет на цены в заведениях?

Соберем все наблюдения по вопросам выше в один общий вывод.

Комментарий ревьюера: ✅ Отличный и наглядный график 👍 Здорово, когда он подписан. Так быстрее понять о чем идёт речь на нём.

Большая часть заведений (2376) представляют собой кафе 28,27%. На втором месте по количеству идут рестораны (2042 заведения) и тройку "лидеров" завершают кофейни, 1413 заведений. "Лидеры" заняли 5831 заведение, что более половины от всех предоставленных нам заведений (69,37%). Оставшиеся 2575 заведений разденены на 5 категорий с существенно меньшим количеством в каждой: паб/бар 764 заведения, пиццерии - 633, быстрое питание - 603, столовых - 315, булочных - 256.

Эта информация нам дает повод для размышлений: совершать нам инвестирование в "тройку" категорий, как восстребованных, ибо спрос рождает предложения, либо рассматривать варианты остальных категорий, как свободное и не перенасыщенное предложениями пространство для бизнеса.

По общему количеству больше всего посадочных меств в городе у ресторанов (154681 клиентов на весь город). Далее у кафе - 118494 клиента, кофейни - 83511 гостя, бар/паб - 58131, пиццерии - 40350, заведения быстрого питания - 34313, столовые - 16359, булочные - 13229.

Рестораны, конечно же, открывают с перспективой для больших торжеств и большего количества гостей одновременно, поэтому они и сместили "лидерство" кафе с максимальным количеством заведений в этой группировке.

Средняя величина показывает нам другую градацию заведений по количеству посадочных мест, чем от их общего числа. Здесь больше всего, 124 клиента, могут принять одновременно бары/пабы, далее идут рестораны - 122 клиента в среднем, кофейни - 111, столовые - 100, заведения быстрого питания - 99, кафе - 97, пиццерии - 94, булочные - 89.

Так как ресторанов, кафе и кофейн открыто больше в городе, поэтому у нас и разные результаты по количеству посадочных мест в местах по категориям.

Визуализируем общее количество по категориям в городе и его отношению в общему числу заведений города.

Самое большое количество посадочных мест у ресторанов - 29.79%. С небольшим отрывом следуют кафе (22.82%). А замыкают тройку лидеров кофейни (16.08%).

Большое количество посадочных мест - дело прибыльное, если они не пустуют.

Рассмотрим соотношение сетевых и несетевых заведений. Мы уже знаем, что из всего общего количества представленных нам заведений, большая часть (5199 заведений) принадлежит к несетевым, а 3203 заведения сетевые.

Комментарий ревьюера: ✅ На первый взгляд так и не скажешь, что несетевых объектов больше. Хорошо, что подтвердили это с помощью наших данных.
Комментарий ревьюера: ❗️ Рекомендую также заменять легенду 0 и 1, на более осмысленные названия. Так как заказчику нужно будет дополнительно тогда объяснять что эти значения обозначают в нашем контексте.